In computer microarchitecture, a cache is a memory that is used to store information temporarily for quicker access. Very often, a cache is implemented as a smaller, faster memory, closer to a processor core. The cache is used to store copies of the data from frequently used main memory locations. When a program makes a request for data from a memory location, the data may be stored in cache with the expectation that the data may be requested again in the near future. If the data is requested again, this results in a cache hit, and the data is served from the higher-speed cache instead of a lower-speed memory device, such as dynamic random access memory (DRAM). Because cache memory is typically more expensive to manufacture, and because cache memory is often implemented on-die, efficient cache use is paramount to ensure maximum system performance and maintain a smaller die size.